home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr05
/
wdasm16.zip
/
HELLO1.ASM
< prev
next >
Wrap
Assembly Source File
|
1993-07-01
|
21KB
|
1,212 lines
TITLE WDASM Example Program
.286
.MODEL SMALL
INCLUDE HELLO2.INC
EXTRN DefWindowProc:FAR
EXTRN GetMessage:FAR
EXTRN TranslateMessage:FAR
EXTRN FatalExit:FAR
EXTRN DispatchMessage:FAR
EXTRN GetVersion:FAR
EXTRN GetDosEnvironment:FAR
EXTRN LocalAlloc:FAR
EXTRN LocalRealloc:FAR
EXTRN LocalFree:FAR
EXTRN FatalAppExit:FAR
EXTRN LocalSize:FAR
EXTRN UpdateWindow:FAR
EXTRN GlobalRealloc:FAR
EXTRN GlobalSize:FAR
EXTRN InitApp:FAR
EXTRN PostQuitMessage:FAR
EXTRN LockSegment:FAR
EXTRN UnlockSegment:FAR
EXTRN WaitEvent:FAR
EXTRN GetClientRect:FAR
EXTRN GetModuleFileName:FAR
EXTRN BeginPaint:FAR
EXTRN EndPaint:FAR
EXTRN CreateWindow:FAR
EXTRN ShowWindow:FAR
EXTRN LoadCursor:FAR
EXTRN LoadIcon:FAR
EXTRN RegisterClass:FAR
EXTRN InitTask:FAR
EXTRN GetStockObject:FAR
EXTRN DrawText:FAR
EXTRN Dos3Call:FAR
EXTRN __winflags:FAR
.CODE
Proc0000Seg1 PROC NEAR
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
Proc0000Seg1 ENDP
Proc0010Seg1 PROC NEAR
PUSH BP
MOV BP, SP
MOV AX, 002EH
CALL NEAR PTR Proc042ASeg1
CMP WORD PTR [BP+10], 0
JZ L0022H
JMP NEAR PTR L008AH
L0022H: MOV WORD PTR [BP-46], 0003H
MOV WORD PTR [BP-44], LROFFSET WNDPROC
MOV WORD PTR [BP-42], SEG WNDPROC
MOV WORD PTR [BP-40], 0000H
MOV WORD PTR [BP-38], 0000H
MOV AX, WORD PTR [BP+12]
MOV WORD PTR [BP-36], AX
PUSH 0
PUSH 0
PUSH 7F00H
CALL FAR PTR LoadIcon
MOV WORD PTR [BP-34], AX
PUSH 0
PUSH 0
PUSH 7F00H
CALL FAR PTR LoadCursor
MOV WORD PTR [BP-32], AX
PUSH 0
CALL FAR PTR GetStockObject
MOV WORD PTR [BP-30], AX
MOV WORD PTR [BP-28], 0000H
MOV WORD PTR [BP-26], 0000H
MOV AX, 0010H
MOV DX, DS
MOV WORD PTR [BP-24], AX
MOV WORD PTR [BP-22], DX
LEA AX, WORD PTR [BP-46]
MOV DX, SS
PUSH DX
PUSH AX
CALL FAR PTR RegisterClass
L008AH: MOV AX, 0010H
MOV DX, DS
PUSH DX
PUSH AX
MOV AX, 00C2H
MOV DX, DS
PUSH DX
PUSH AX
PUSH 00CFH
PUSH 0
PUSH 8000H
PUSH 8000H
PUSH 8000H
PUSH 8000H
PUSH 0
PUSH 0
PUSH WORD PTR [BP+12]
PUSH 0
PUSH 0
CALL FAR PTR CreateWindow
MOV WORD PTR [BP-2], AX
PUSH AX
PUSH WORD PTR [BP+4]
CALL FAR PTR ShowWindow
PUSH WORD PTR [BP-2]
CALL FAR PTR UpdateWindow
L00CDH: LEA AX, WORD PTR [BP-20]
MOV DX, SS
PUSH DX
PUSH AX
PUSH 0
PUSH 0
PUSH 0
CALL FAR PTR GetMessage
AND AX, AX
JZ L00FEH
LEA AX, WORD PTR [BP-20]
MOV DX, SS
PUSH DX
PUSH AX
CALL FAR PTR TranslateMessage
LEA AX, WORD PTR [BP-20]
MOV DX, SS
PUSH DX
PUSH AX
CALL FAR PTR DispatchMessage
JMP SHORT L00CDH
NOP
L00FEH: MOV AX, WORD PTR [BP-16]
LEAVE
RET 000AH
Proc0010Seg1 ENDP
Proc0105Seg1 PROC NEAR
NOP
Proc0105Seg1 ENDP
WNDPROC PROC FAR PUBLIC
PUSH DS
POP AX
NOP
INC BP
PUSH BP
MOV BP, SP
PUSH DS
MOV DS, AX
MOV AX, 002CH
CALL NEAR PTR Proc042ASeg1
PUSH SI
PUSH DI
MOV SI, WORD PTR [BP+14]
MOV AX, WORD PTR [BP+12]
JMP NEAR PTR L017AH
NOP
L0122H: PUSH SI
LEA AX, WORD PTR [BP-36]
MOV DX, SS
PUSH DX
PUSH AX
CALL FAR PTR BeginPaint
MOV DI, AX
PUSH SI
LEA AX, WORD PTR [BP-44]
MOV DX, SS
PUSH DX
PUSH AX
CALL FAR PTR GetClientRect
PUSH DI
MOV AX, 00DFH
MOV DX, DS
PUSH DX
PUSH AX
PUSH -1
LEA AX, WORD PTR [BP-44]
MOV DX, SS
PUSH DX
PUSH AX
PUSH 37
CALL FAR PTR DrawText
PUSH SI
LEA AX, WORD PTR [BP-36]
MOV DX, SS
PUSH DX
PUSH AX
CALL FAR PTR EndPaint
XOR AX, AX
XOR DX, DX
JMP SHORT L019FH
NOP
L016AH: PUSH 0
CALL FAR PTR PostQuitMessage
XOR AX, AX
XOR DX, DX
JMP SHORT L019FH
NOP
JMP SHORT L0187H
L017AH: CMP AX, 0002H
JZ L016AH
CMP AX, 000FH
JNZ L0187H
JMP NEAR PTR L0122H
L0187H: PUSH SI
PUSH WORD PTR [BP+12]
PUSH WORD PTR [BP+10]
PUSH WORD PTR [BP+8]
PUSH WORD PTR [BP+6]
CALL FAR PTR DefWindowProc
JMP SHORT L019FH
NOP
MOV WORD PTR [BP+14], SI
L019FH: POP DI
POP SI
SUB BP, 2
MOV SP, BP
POP DS
POP BP
DEC BP
RETF 000AH
WNDPROC ENDP
Proc01ACSeg1 PROC NEAR
L01ACH DW LROFFSET __winflags
L01AEH: MOV AL, -1
PUSH AX
CALL NEAR PTR Proc034ESeg1
L01B4H:: XOR BP, BP
PUSH BP
CALL FAR PTR InitTask
OR AX, AX
JZ L01AEH
MOV WORD PTR D0064H, ES
ADD CX, 0100H
JB L01AEH
MOV WORD PTR D002EH, CX
MOV WORD PTR D0030H, SI
MOV WORD PTR D0032H, DI
MOV WORD PTR D0034H, BX
MOV WORD PTR D0036H, ES
MOV WORD PTR D0038H, DX
CALL FAR PTR GetVersion
MOV WORD PTR D0066H, AX
MOV AH, 48
TEST WORD PTR CS:L01ACH, 0001H
JZ L01FCH
CALL FAR PTR Dos3Call
JMP SHORT L01FEH
L01FCH: INT 0021H
L01FEH: MOV WORD PTR D0068H, AX
TEST WORD PTR CS:L01ACH, 0001H
JNZ L020FH
MOV AL, 0
MOV BYTE PTR D006BH, AL
L020FH: XOR AX, AX
PUSH AX
CALL FAR PTR WaitEvent
PUSH WORD PTR D0032H
CALL FAR PTR InitApp
OR AX, AX
JZ L01AEH
CALL NEAR PTR Proc0268Seg1
CALL NEAR PTR Proc047ESeg1
CALL NEAR PTR Proc05FCSeg1
CALL NEAR PTR Proc085CSeg1
PUSH WORD PTR D00A0H
PUSH WORD PTR D009EH
PUSH WORD PTR D009CH
CALL NEAR PTR Proc024CSeg1
ADD SP, 6
PUSH AX
CALL NEAR PTR Proc0347Seg1
MOV AX, 0015H
JMP NEAR PTR L0683H
Proc01ACSeg1 ENDP
Proc024CSeg1 PROC NEAR
PUSH BP
MOV BP, SP
PUSH WORD PTR D0032H
PUSH WORD PTR D0030H
PUSH WORD PTR D0036H
PUSH WORD PTR D0034H
PUSH WORD PTR D0038H
CALL NEAR PTR Proc0010Seg1
POP BP
RET
Proc024CSeg1 ENDP
Proc0268Seg1 PROC NEAR
MOV AX, 3500H
TEST WORD PTR CS:L01ACH, 0001H
JZ L027BH
CALL FAR PTR Dos3Call
JMP SHORT L027DH
L027BH: INT 0021H
L027DH: MOV WORD PTR D0050H, BX
MOV WORD PTR D0052H, ES
PUSH CS
POP DS
MOV AX, 2500H
MOV DX, 067EH
TEST WORD PTR CS:L01ACH, 0001H
JZ L029DH
CALL FAR PTR Dos3Call
JMP SHORT L029FH
L029DH: INT 0021H
L029FH: PUSH SS
POP DS
MOV CX, WORD PTR D00B8H
JCXZ L02D0H
MOV ES, WORD PTR D0064H
MOV SI, WORD PTR ES:D002CH
MOV AX, WORD PTR D00BAH
MOV DX, WORD PTR D00BCH
XOR BX, BX
CALL DWORD PTR D00B6H
JAE L02C2H
JMP NEAR PTR L0424H
L02C2H: MOV AX, WORD PTR D00BEH
MOV DX, WORD PTR D00C0H
MOV BX, 0003H
CALL DWORD PTR D00B6H
L02D0H: MOV ES, WORD PTR D0064H
MOV CX, WORD PTR ES:D002CH
JCXZ L0319H
MOV ES, CX
XOR DI, DI
L02DFH: CMP BYTE PTR ES:[DI], 0
JZ L0319H
MOV CX, 000DH
MOV SI, 0042H
REPE CMPSB
JZ L02FAH
MOV CX, 7FFFH
XOR AX, AX
REPNE SCASB
JNZ L0319H
JMP SHORT L02DFH
L02FAH: PUSH ES
PUSH DS
POP ES
POP DS
MOV SI, DI
MOV DI, 0074H
MOV CL, 4
L0305H: LODSB
SUB AL, 65
JB L0317H
SHL AL, CL
XCHG DX, AX
LODSB
SUB AL, 65
JB L0317H
OR AL, DL
STOSB
JMP SHORT L0305H
L0317H: PUSH SS
POP DS
L0319H: MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03EBSeg1
MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03FASeg1
MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03EBSeg1
MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03EBSeg1
MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03FASeg1
RET
Proc0268Seg1 ENDP
Proc0347Seg1 PROC NEAR
PUSH BP
MOV BP, SP
XOR CX, CX
JMP SHORT L0368H
Proc0347Seg1 ENDP
Proc034ESeg1 PROC NEAR
PUSH BP
MOV BP, SP
MOV CX, 0001H
JMP SHORT L0368H
PUSH BP
MOV BP, SP
PUSH SI
PUSH DI
MOV CX, 0100H
JMP SHORT L0368H
PUSH BP
MOV BP, SP
PUSH SI
PUSH DI
MOV CX, 0101H
L0368H:: MOV BYTE PTR D00A9H, CH
PUSH CX
OR CL, CL
JNZ L038DH
MOV SI, 024CH
MOV DI, 024CH
CALL NEAR PTR Proc03EBSeg1
MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03EBSeg1
MOV SI, WORD PTR [BP+4]
PUSH SI
CALL NEAR PTR Proc085CSeg1
ADD SP, 2
L038DH: MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03EBSeg1
MOV SI, 00C2H
MOV DI, 00C2H
CALL NEAR PTR Proc03FASeg1
CALL NEAR PTR Proc03C2Seg1
POP AX
OR AH, AH
JNZ L03BEH
MOV AX, WORD PTR [BP+4]
MOV AH, 76
TEST WORD PTR CS:L01ACH, 0001H
JZ L03BCH
CALL FAR PTR Dos3Call
JMP SHORT L03BEH
L03BCH: INT 0021H
L03BEH: POP DI
POP SI
POP BP
RET
Proc034ESeg1 ENDP
Proc03C2Seg1 PROC NEAR
MOV CX, WORD PTR D00B8H
JCXZ L03CFH
MOV BX, 0002H
CALL DWORD PTR D00B6H
L03CFH: PUSH DS
LDS DX, DWORD PTR D0050H
MOV AX, 2500H
TEST WORD PTR CS:L01ACH, 0001H
JZ L03E7H
CALL FAR PTR Dos3Call
JMP SHORT L03E9H
L03E7H: INT 0021H
L03E9H: POP DS
RET
Proc03C2Seg1 ENDP
Proc03EBSeg1 PROC NEAR
L03EBH: CMP SI, DI
JAE L03F9H
DEC DI
DEC DI
MOV CX, WORD PTR [DI]
JCXZ L03EBH
CALL CX
JMP SHORT L03EBH
L03F9H: RET
Proc03EBSeg1 ENDP
Proc03FASeg1 PROC NEAR
L03FAH: CMP SI, DI
JAE L040CH
SUB DI, 4
MOV AX, WORD PTR [DI]
OR AX, WORD PTR [DI+2]
JZ L03FAH
CALL DWORD PTR [DI]
JMP SHORT L03FAH
L040CH: RET
Proc03FASeg1 ENDP
Proc040DSeg1 PROC NEAR
L040DH DB 0000H
Proc040DSeg1 ENDP
Proc040ESeg1 PROC NEAR
PUSH BP
MOV BP, SP
MOV AX, 00FCH
PUSH AX
CALL NEAR PTR Proc06EDSeg1
MOV AX, 00FFH
PUSH AX
CALL NEAR PTR Proc06EDSeg1
MOV SP, BP
POP BP
RET
Proc040ESeg1 ENDP
Proc0423Seg1 PROC NEAR
L0423H DB 0000H
L0424H:: MOV AX, 0002H
JMP NEAR PTR L0683H
Proc0423Seg1 ENDP
Proc042ASeg1 PROC NEAR
POP BX
INC AX
AND AL, -2
SUB AX, SP
JAE L0477H
NEG AX
CMP WORD PTR SS:D000AH, AX
JA L0477H
CMP WORD PTR SS:D000CH, AX
JBE L0446H
MOV WORD PTR D000CH, AX
L0446H: MOV SP, AX
JMP BX
POP BX
POP DX
INC AX
AND AL, -2
SUB AX, SP
JAE L046CH
NEG AX
CMP WORD PTR SS:D000AH, AX
JA L046CH
CMP WORD PTR SS:D000CH, AX
JBE L0467H
MOV WORD PTR D000CH, AX
L0467H: MOV SP, AX
PUSH DX
PUSH BX
RETF
Proc042ASeg1 ENDP
Proc046CSeg1 PROC NEAR
L046CH:: MOV DX, WORD PTR SS:D00ACH
INC DX
JZ L0477H
JMP WORD PTR D00ACH
L0477H:: MOV AX, 0000H
JMP NEAR PTR L0683H
L047DH DB 0000H
Proc046CSeg1 ENDP
Proc047ESeg1 PROC NEAR
POP WORD PTR D00AEH
MOV AX, 0104H
MOV CX, 0008H
CALL NEAR PTR Proc071ESeg1
MOV WORD PTR D00A4H, DX
MOV WORD PTR D00A2H, AX
PUSH DX
PUSH AX
PUSH WORD PTR D0032H
PUSH DX
PUSH AX
MOV AX, 0104H
PUSH AX
CALL FAR PTR GetModuleFileName
POP BX
POP ES
ADD BX, AX
MOV BYTE PTR ES:[BX], 0
MOV DX, 0001H
MOV DI, 0001H
MOV SI, 0081H
MOV DS, WORD PTR D0064H
L04B8H: LODSB
CMP AL, 32
JZ L04B8H
CMP AL, 9
JZ L04B8H
CMP AL, 13
JZ L0534H
OR AL, AL
JZ L0534H
INC DI
L04CAH: DEC SI
L04CBH: LODSB
CMP AL, 32
JZ L04B8H
CMP AL, 9
JZ L04B8H
CMP AL, 13
JZ L0534H
OR AL, AL
JZ L0534H
CMP AL, 34
JZ L0504H
CMP AL, 92
JZ L04E7H
INC DX
JMP SHORT L04CBH
L04E7H: XOR CX, CX
L04E9H: INC CX
LODSB
CMP AL, 92
JZ L04E9H
CMP AL, 34
JZ L04F7H
ADD DX, CX
JMP SHORT L04CAH
L04F7H: MOV AX, CX
SHR CX, 1
ADC DX, CX
TEST AL, 1
JNZ L04CBH
JMP SHORT L0504H
L0503H: DEC SI
L0504H: LODSB
CMP AL, 13
JZ L0534H
OR AL, AL
JZ L0534H
CMP AL, 34
JZ L04CBH
CMP AL, 92
JZ L0518H
INC DX
JMP SHORT L0504H
L0518H: XOR CX, CX
L051AH: INC CX
LODSB
CMP AL, 92
JZ L051AH
CMP AL, 34
JZ L0528H
ADD DX, CX
JMP SHORT L0503H
L0528H: MOV AX, CX
SHR CX, 1
ADC DX, CX
TEST AL, 1
JNZ L0504H
JMP SHORT L04CBH
L0534H: PUSH SS
POP DS
MOV WORD PTR D009CH, DI
ADD DX, DI
INC DI
SHL DI, 1
ADD DX, DI
INC DX
AND DL, -2
SUB SP, DX
MOV AX, SP
MOV WORD PTR D009EH, AX
MOV BX, AX
ADD DI, BX
PUSH SS
POP ES
LDS SI, DWORD PTR D00A2H
MOV WORD PTR SS:[BX], SI
INC BX
INC BX
MOV DS, WORD PTR SS:D0064H
MOV SI, 0081H
JMP SHORT L0568H
L0565H: XOR AX, AX
STOSB
L0568H: LODSB
CMP AL, 32
JZ L0568H
CMP AL, 9
JZ L0568H
CMP AL, 13
JZ L05F1H
OR AL, AL
JZ L05F1H
MOV WORD PTR SS:[BX], DI
INC BX
INC BX
L057EH: DEC SI
L057FH: LODSB
CMP AL, 32
JZ L0565H
CMP AL, 9
JZ L0565H
CMP AL, 13
JZ L05EEH
OR AL, AL
JZ L05EEH
CMP AL, 34
JZ L05BBH
CMP AL, 92
JZ L059BH
STOSB
JMP SHORT L057FH
L059BH: XOR CX, CX
L059DH: INC CX
LODSB
CMP AL, 92
JZ L059DH
CMP AL, 34
JZ L05ADH
MOV AL, 92
REP STOSB
JMP SHORT L057EH
L05ADH: MOV AL, 92
SHR CX, 1
REP STOSB
JAE L05BBH
MOV AL, 34
STOSB
JMP SHORT L057FH
L05BAH: DEC SI
L05BBH: LODSB
CMP AL, 13
JZ L05EEH
OR AL, AL
JZ L05EEH
CMP AL, 34
JZ L057FH
CMP AL, 92
JZ L05CFH
STOSB
JMP SHORT L05BBH
L05CFH: XOR CX, CX
L05D1H: INC CX
LODSB
CMP AL, 92
JZ L05D1H
CMP AL, 34
JZ L05E1H
MOV AL, 92
REP STOSB
JMP SHORT L05BAH
L05E1H: MOV AL, 92
SHR CX, 1
REP STOSB
JAE L057FH
MOV AL, 34
STOSB
JMP SHORT L05BBH
L05EEH: XOR AX, AX
STOSB
L05F1H: PUSH SS
POP DS
MOV WORD PTR [BX], 0000H
JMP WORD PTR D00AEH
L05FBH DB 0000H
Proc047ESeg1 ENDP
Proc05FCSeg1 PROC NEAR
PUSH BP
MOV BP, SP
PUSH DS
CALL FAR PTR GetDosEnvironment
OR AX, AX
JZ L060BH
MOV DX, AX
L060BH: MOV BX, DX
MOV ES, DX
XOR AX, AX
XOR SI, SI
XOR DI, DI
MOV CX, 0FFFFH
OR BX, BX
JZ L062AH
CMP BYTE PTR ES:D0000H, 0
JZ L062AH
L0624H: REPNE SCASB
INC SI
SCASB
JNZ L0624H
L062AH: MOV AX, DI
INC AX
AND AL, -2
INC SI
MOV DI, SI
SHL SI, 1
MOV CX, 0009H
CALL NEAR PTR Proc071ESeg1
PUSH AX
MOV AX, SI
CALL NEAR PTR Proc071ESeg1
MOV WORD PTR D00A0H, AX
PUSH ES
PUSH DS
POP ES
POP DS
MOV CX, DI
MOV BX, AX
XOR SI, SI
POP DI
DEC CX
JCXZ L0677H
L0651H: MOV AX, WORD PTR [SI]
CMP AX, WORD PTR SS:D0042H
JNZ L066AH
PUSH CX
PUSH SI
PUSH DI
MOV DI, 0042H
MOV CX, 0006H
REPE CMPSW
POP DI
POP SI
POP CX
JZ L066FH
L066AH: MOV WORD PTR ES:[BX], DI
INC BX
INC BX
L066FH: LODSB
STOSB
OR AL, AL
JNZ L066FH
LOOP L0651H
L0677H: MOV WORD PTR ES:[BX], CX
POP DS
POP BP
RET
Proc05FCSeg1 ENDP
Proc067DSeg1 PROC NEAR
L067DH DB 0000H
PUSH SS
POP DS
MOV AX, 0003H
L0683H:: PUSH AX
PUSH AX
CALL NEAR PTR Proc040ESeg1
CALL NEAR PTR Proc06EDSeg1
CALL NEAR PTR Proc06C2Seg1
XOR BX, BX
OR AX, AX
JZ L06B1H
MOV DI, AX
MOV AX, 0009H
CMP BYTE PTR [DI], 77
JNZ L06A1H
MOV AX, 000FH
L06A1H: ADD DI, AX
PUSH DI
PUSH DS
POP ES
MOV AL, 13
MOV CX, 0022H
REPNE SCASB
MOV BYTE PTR [DI-1], BL
POP AX
L06B1H: PUSH BX
PUSH DS
PUSH AX
CALL FAR PTR FatalAppExit
MOV AX, 00FFH
PUSH AX
CALL FAR PTR FatalExit
Proc067DSeg1 ENDP
Proc06C2Seg1 PROC NEAR
PUSH BP
MOV BP, SP
PUSH SI
PUSH DI
PUSH DS
POP ES
MOV DX, WORD PTR [BP+4]
MOV SI, 0102H
L06CFH: LODSW
CMP AX, DX
JZ L06E4H
INC AX
XCHG SI, AX
JZ L06E4H
XCHG DI, AX
XOR AX, AX
MOV CX, 0FFFFH
REPNE SCASB
MOV SI, DI
JMP SHORT L06CFH
L06E4H: XCHG SI, AX
POP DI
POP SI
MOV SP, BP
POP BP
RET 0002H
Proc06C2Seg1 ENDP
Proc06EDSeg1 PROC NEAR
PUSH BP
MOV BP, SP
PUSH DI
CMP WORD PTR D00B2H, 0
JZ L0716H
PUSH WORD PTR [BP+4]
CALL NEAR PTR Proc06C2Seg1
OR AX, AX
JZ L0716H
XCHG DX, AX
MOV DI, DX
XOR AX, AX
MOV CX, 0FFFFH
REPNE SCASB
NOT CX
DEC CX
MOV BX, WORD PTR D006EH
CALL NEAR PTR Proc0861Seg1
L0716H: POP DI
MOV SP, BP
POP BP
RET 0002H
Proc06EDSeg1 ENDP
Proc071DSeg1 PROC NEAR
L071DH DB 0000H
Proc071DSeg1 ENDP
Proc071ESeg1 PROC NEAR
PUSH BP
MOV BP, SP
PUSH BX
PUSH ES
PUSH CX
MOV CX, 1000H
XCHG CX, WORD PTR D00B0H
PUSH CX
PUSH AX
CALL NEAR PTR Proc0868Seg1
POP BX
POP WORD PTR D00B0H
POP CX
MOV DX, DS
OR AX, AX
JZ L0740H
POP ES
POP BX
JMP SHORT L0745H
L0740H: MOV AX, CX
JMP NEAR PTR L0683H
L0745H: MOV SP, BP
POP BP
RET
Proc071ESeg1 ENDP
Proc0749Seg1 PROC NEAR
L0749H DB 0000H
PUSH CX
PUSH DI
TEST BYTE PTR [BX+2], 1
JZ L07B5H
CALL NEAR PTR Proc083CSeg1
MOV DI, SI
MOV AX, WORD PTR [SI]
TEST AL, 1
JZ L0760H
SUB CX, AX
DEC CX
L0760H: INC CX
INC CX
MOV SI, WORD PTR [BX+4]
OR SI, SI
JZ L07B5H
ADD CX, SI
JAE L0776H
XOR AX, AX
MOV DX, 0FFF0H
JCXZ L07A4H
JMP SHORT L07B5H
L0776H: PUSH SS
POP ES
MOV AX, WORD PTR D00B0H
CMP AX, 1000H
JZ L0797H
MOV DX, 8000H
L0784H: CMP DX, AX
JB L078EH
SHR DX, 1
JNZ L0784H
JMP SHORT L07B0H
L078EH: CMP DX, 8
JB L07B0H
SHL DX, 1
MOV AX, DX
L0797H: DEC AX
MOV DX, AX
ADD AX, CX
JAE L07A0H
XOR AX, AX
L07A0H: NOT DX
AND AX, DX
L07A4H: PUSH DX
CALL NEAR PTR Proc07D6Seg1
POP DX
JAE L07B8H
CMP DX, -16
JZ L07B5H
L07B0H: MOV AX, 0010H
JMP SHORT L0797H
L07B5H: STC
JMP SHORT L07D3H
L07B8H: MOV DX, AX
SUB DX, WORD PTR ES:[BX+4]
MOV WORD PTR [BX+4], AX
MOV WORD PTR [BX+10], DI
MOV SI, WORD PTR [BX+12]
DEC DX
MOV WORD PTR [SI], DX
INC DX
ADD SI, DX
MOV WORD PTR [SI], 0FFFEH
MOV WORD PTR [BX+12], SI
L07D3H: POP DI
POP CX
RET
Proc0749Seg1 ENDP
Proc07D6Seg1 PROC NEAR
MOV DX, AX
TEST BYTE PTR [BX+2], 4
JZ L07E0H
JMP SHORT L0831H
L07E0H: PUSH DX
PUSH CX
PUSH BX
MOV SI, WORD PTR [BX+6]
MOV BX, WORD PTR CS:L01ACH
XOR CX, CX
OR DX, DX
JNZ L07F8H
TEST BX, 0010H
JNZ L0837H
INC CX
L07F8H: MOV AX, 0022H
TEST BX, 0001H
JNZ L0804H
MOV AX, 0020H
L0804H: PUSH SI
PUSH CX
PUSH DX
PUSH AX
CALL FAR PTR GlobalRealloc
OR AX, AX
JZ L0837H
CMP AX, SI
JNZ L0831H
PUSH SI
CALL FAR PTR GlobalSize
OR DX, AX
JZ L0831H
POP BX
POP CX
POP DX
MOV AX, DX
TEST BYTE PTR [BX+2], 4
JZ L082EH
DEC DX
MOV WORD PTR [BX-2], DX
L082EH: CLC
JMP SHORT L083BH
L0831H: MOV AX, 0012H
JMP NEAR PTR L0683H
L0837H: POP BX
POP CX
POP DX
STC
L083BH: RET
Proc07D6Seg1 ENDP
Proc083CSeg1 PROC NEAR
PUSH DI
MOV SI, WORD PTR [BX+10]
CMP SI, WORD PTR [BX+12]
JNZ L0848H
MOV SI, WORD PTR [BX+8]
L0848H: LODSW
CMP AX, -2
JZ L0856H
MOV DI, SI
AND AL, -2
ADD SI, AX
JMP SHORT L0848H
L0856H: DEC DI
DEC DI
MOV SI, DI
POP DI
RET
Proc083CSeg1 ENDP
Proc085CSeg1 PROC NEAR
PUSH BP
MOV BP, SP
POP BP
RET
Proc085CSeg1 ENDP
Proc0861Seg1 PROC NEAR
MOV AX, 0014H
JMP NEAR PTR L0683H
L0867H DB 0000H
Proc0861Seg1 ENDP
Proc0868Seg1 PROC NEAR
PUSH BP
MOV BP, SP
SUB SP, 4
MOV AX, 0FFFFH
PUSH AX
CALL FAR PTR LockSegment
MOV AX, 0020H
PUSH AX
CMP WORD PTR [BP+4], 0
JZ L0886H
MOV AX, WORD PTR [BP+4]
JMP SHORT L0889H
L0886H: MOV AX, 0001H
L0889H: PUSH AX
CALL FAR PTR LocalAlloc
MOV WORD PTR [BP-2], AX
MOV AX, 0FFFFH
PUSH AX
CALL FAR PTR UnlockSegment
MOV AX, WORD PTR [BP-2]
MOV SP, BP
POP BP
RET
Proc0868Seg1 ENDP
Proc08A2Seg1 PROC NEAR
PUSH BP
MOV BP, SP
PUSH WORD PTR [BP+4]
CALL FAR PTR LocalFree
MOV SP, BP
POP BP
RET
Proc08A2Seg1 ENDP
Proc08B1Seg1 PROC NEAR
NOP
PUSH BP
MOV BP, SP
SUB SP, 4
CMP WORD PTR [BP+4], 0
JNZ L08CAH
PUSH WORD PTR [BP+6]
CALL NEAR PTR Proc0868Seg1
ADD SP, 2
JMP SHORT L08FEH
NOP
L08CAH: MOV AX, 0FFFFH
PUSH AX
CALL FAR PTR LockSegment
PUSH WORD PTR [BP+4]
CMP WORD PTR [BP+6], 0
JZ L08E2H
MOV AX, WORD PTR [BP+6]
JMP SHORT L08E5H
NOP
L08E2H: MOV AX, 0001H
L08E5H: PUSH AX
MOV AX, 0062H
PUSH AX
CALL FAR PTR LocalRealloc
MOV WORD PTR [BP-2], AX
MOV AX, 0FFFFH
PUSH AX
CALL FAR PTR UnlockSegment
MOV AX, WORD PTR [BP-2]
L08FEH: MOV SP, BP
POP BP
RET
Proc08B1Seg1 ENDP
Proc0902Seg1 PROC NEAR
PUSH BP
MOV BP, SP
PUSH WORD PTR [BP+4]
CALL FAR PTR LocalSize
MOV SP, BP
POP BP
RET
Proc0902Seg1 ENDP
Proc0911Seg1 PROC NEAR
NOP
Proc0911Seg1 ENDP
END L01B4H